Many applications exist to implement reasoning, decision or automation algorithms. A first method is manual decision making, wherein data is inspected and decisions are taken manually. Another method is scripting, i.e. using ‘if-then-else’ constructs of a programming language. Other algorithms are e.g. based on flow-chart and BPM (Business-Process-Management) models.
Problems and disadvantages of these methods are manifold. These algorithms are not suited when working in environments which cannot be completely observed or wherein the domain knowledge is incomplete, or when unreliable, noisy or incomplete data require probabilistic reasoning. Another problem arises when the number of root causes for a problem is so large, that it is impossible to enumerate them all explicitly.
A solution for above mentioned problems are methods based on Bayesian networks. This graph modeling technology uses probabilistic reasoning, i.e. reasoning under uncertainty. A typical application is found in artificial intelligence technology.
Bayesian networks are useful when the logic comprises many different sources of information with a large number of states. Bayesian networks are more amenable to asynchronous information flows, i.e. not all information streams are synchronized. Hereby the reasoning or ‘inference’ of Bayesian networks can run continuously.
Document U.S. Pat. No. 7,974,933 discloses for example a method for using a Bayesian network to evaluate the efficacy of mathematical models for system behavior. Herein, typical use of Bayesian networks is found in engineering projects such as aircraft design. Document WO 2012/140152 discloses a Bayesian network comprising nodes associated with outdoor lighting devices. The nodes in Bayesian networks in other words can be associated with sensors.
A problem of the existing solutions is that Bayesian agents implementing such Bayesian networks, are developed ad hoc and are therefore not easily reusable across applications.
Another problem is that writing code for or programming such Bayesian agents and networks is not easy. There is a need for more convenient methods to develop and use Bayesian agents with reduced requirements to manually write code.
Hence, there is a need for a quicker development of Bayesian agents, together with a need for a better reusability and scalability.